package com.ash.dao;

import java.util.List;

/**
 * @encoding : UTF-8
 * @time : 2020/12/9 14:56
 * @author : Chen Chao
 * @File : TestLogin.com.ash.dao.dao.IDao.java
 * @Software : IntelliJ IDEA
 * @since : 1.8
 */
public interface IDao<T> {
    /**
     * 添加实例对象到数据库
     * @param t 实例对象
     * @return 添加结果
     */
    int add(T t);

    /**
     * 根据主键查询结果
     * @param key 主键
     * @return 查询结果
     */
    T selectByKey(Object key);
    /**
     * 根据实例对象查询结果
     * @param t 实例对象
     * @return 查询结果
     */
    List<T> select(T t);

    /**
     * 查询改类对应的所有实体对象组成的集合
     * @return 对应的所有实体对象组成的集合
     */
    List<T> selectAll();

    /**
     *删除指定的实例对象
     * @param key  要删除的对象的key
     * @return 删除操作的结果
     */
    int deleteByKey(Object key);
    /**
     *删除指定的实例对象
     * @param t  实例对象
     * @return 删除操作的结果
     */
    int delete(T t);

    /**
     * 修改指定的对象
     * @param t 实例对象
     * @return 修改操作的结果
     */
    int modify(T t);

    /**
     * 查询实体的记录数量
     * @return 实体的记录数量
     */
    int count();
}
